package mjc.compiler;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;


public class INFOCLASSE extends INFO {

	private static final long serialVersionUID = 1L;
	private INFOCLASSE surclasse ;
	private int taille;
	private TDS attributs ;
	
	public INFOCLASSE(String _nom) {
		super(_nom);
		surclasse = null;
		attributs = new TDS();
	}
	
	public INFOCLASSE(String _nom, INFO ancien) {
		super(_nom);
		surclasse = ((INFOCLASSE) ancien);
		attributs = new TDS(((INFOCLASSE) ancien).getAttributs());
	}	
	
	public DTYPE getType() {
		if(surclasse != null)
			return new DTYPE(getNom(), taille, surclasse.getType());
		return new DTYPE(getNom(), taille);
	}

	public TDS getAttributs() {
		return attributs;
	}
	
	public void exporter() {
		try {
			FileOutputStream f = new FileOutputStream(getNom()+".mclass");
			ObjectOutputStream s = new ObjectOutputStream(f);
			s.writeObject(this);
			s.flush();
			f.close();
		} catch (IOException e) {
			System.out.println("Problème lors de l'exportation de "+getNom()+".mclass");
			e.printStackTrace();
		}
	}

}
